package com.ssy.lingxi.order.model.dto;

import com.ssy.lingxi.order.model.constant.OrderProductDeliverTypeEnum;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * App - 分页查询订单列表时的订单商品信息
 * @author 万宁
 * @version 2.0.0
 * @date 2021-09-22
 */
public class MobileOrderProductQueryDTO implements Serializable {
    private static final long serialVersionUID = -6749749829535112519L;

    public MobileOrderProductQueryDTO(Long orderId, Long orderProductId, Long productId, Long skuId, Long stockId, Integer priceType, String logo, String name, String category, String brand, String spec, String unit, BigDecimal refPrice, BigDecimal quantity, Integer deliverType, String address, String receiver, String phone) {
        this.orderId = orderId;
        this.orderProductId = orderProductId;
        this.productId = productId;
        this.skuId = skuId;
        this.stockId = stockId;
        this.priceType = priceType;
        this.logo = logo;
        this.name = name;
        this.category = category;
        this.brand = brand;
        this.spec = spec;
        this.unit = unit;
        this.refPrice = refPrice;
        this.quantity = quantity;
        this.deliverType = deliverType;
        this.deliverTypeName = OrderProductDeliverTypeEnum.getNameByCode(deliverType);
        this.address = address;
        this.receiver = receiver;
        this.phone = phone;
    }

//    public MobileOrderProductQueryDTO(Long orderProductId, Long productId, Long skuId, Long stockId, Integer priceType, String logo, String name, String category, String brand, String spec, String unit, BigDecimal refPrice, BigDecimal quantity, Integer deliverType, String address, String receiver, String phone) {
//        this.orderProductId = orderProductId;
//        this.productId = productId;
//        this.skuId = skuId;
//        this.stockId = stockId;
//        this.priceType = priceType;
//        this.logo = logo;
//        this.name = name;
//        this.category = category;
//        this.brand = brand;
//        this.spec = spec;
//        this.unit = unit;
//        this.refPrice = refPrice;
//        this.quantity = quantity;
//        this.deliverType = deliverType;
//        this.deliverTypeName = OrderProductDeliverTypeEnum.getNameByCode(deliverType);
//        this.address = address;
//        this.receiver = receiver;
//        this.phone = phone;
//    }

    /**
     * 订单Id
     */
    private Long orderId;

    /**
     * (订单服务)订单商品Id
     */
    private Long orderProductId;

    /**
     * 商品Id
     */
    private Long productId;

    /**
     * 商品SkuId
     */
    private Long skuId;

    /**
     * 渠道商品SkuId
     */
    private Long stockId;

    /**
     * 订单商品类型，0-普通商品，1-赠品
     */
    private Integer priceType;

    /**
     * 商品Logo
     */
    private String logo;

    /**
     * 商品名称
     */
    private String name;

    /**
     * 商品类别
     */
    private String category;

    /**
     * 商品品牌
     */
    private String brand;

    /**
     * 商品规格
     */
    private String spec;

    /**
     * 计价单位
     */
    private String unit;

    /**
     * 商品到手价
     */
    private BigDecimal refPrice;

    /**
     * 购买数量
     */
    private BigDecimal quantity;

    /**
     * 配送方式枚举
     */
    private Integer deliverType;

    /**
     * 配送方式名称
     */
    private String deliverTypeName;

    /**
     * 自提地址（如配送方式为自提）
     */
    private String address;

    /**
     * 接收人（如配送方式为自提）
     */
    private String receiver;

    /**
     * 接收人电话（如配送方式为自提）
     */
    private String phone;

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public Long getOrderProductId() {
        return orderProductId;
    }

    public void setOrderProductId(Long orderProductId) {
        this.orderProductId = orderProductId;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public Long getSkuId() {
        return skuId;
    }

    public void setSkuId(Long skuId) {
        this.skuId = skuId;
    }

    public Long getStockId() {
        return stockId;
    }

    public void setStockId(Long stockId) {
        this.stockId = stockId;
    }

    public Integer getPriceType() {
        return priceType;
    }

    public void setPriceType(Integer priceType) {
        this.priceType = priceType;
    }

    public String getLogo() {
        return logo;
    }

    public void setLogo(String logo) {
        this.logo = logo;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getSpec() {
        return spec;
    }

    public void setSpec(String spec) {
        this.spec = spec;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public BigDecimal getRefPrice() {
        return refPrice;
    }

    public void setRefPrice(BigDecimal refPrice) {
        this.refPrice = refPrice;
    }

    public BigDecimal getQuantity() {
        return quantity;
    }

    public void setQuantity(BigDecimal quantity) {
        this.quantity = quantity;
    }

    public Integer getDeliverType() {
        return deliverType;
    }

    public void setDeliverType(Integer deliverType) {
        this.deliverType = deliverType;
    }

    public String getDeliverTypeName() {
        return deliverTypeName;
    }

    public void setDeliverTypeName(String deliverTypeName) {
        this.deliverTypeName = deliverTypeName;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getReceiver() {
        return receiver;
    }

    public void setReceiver(String receiver) {
        this.receiver = receiver;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
}
